Laser Cutting of Sheets of Material
Cutting features from sheet material according to a pattern is a common manufacturing process. Generally, a laser cutter head is translated in a bounded plane along orthogonal axes. Laser cutters of this type are often used to cut discreet features from plastic and metal sheets of varying thickness. Control of the laser cutter is usually performed by a computer numerical controller (CNC) following a prescribed instruction list known as “nc-code,” or “g-code.”
Two types of laser cutter head movements are typically used. Pure translation or lateral movement can be performed by very rapid lateral motion in the plane of the material while the laser is continuously ON. This type of movement is preferred.
Head-up/down movements are relatively slow. This type of movement typically requires stopping the cutter head and turning the laser OFF/ON while performing the head up/down movement. Therefore, this type of movement should be avoided as much as possible to minimize production time. Hence, two types of basic movements are define, rapid lateral movement, and slow up/down movement.
Closed and Nested Features
A part is defined by a pattern of lines, straight or curved, that can be followed by the laser cutter head as specified by the instructions of the code. A feature is defined by one or more connected lines, and the part is defined by a set of one or more features. Often the features are nested. The lines of some features are closed so that the feature can be cut from of the material. Unclosed features, e.g., slits, along the edges of the pattern can also be cut.
CAD/CAM and G-Code
The part and set of features is usually specified as a computer aided design (CAD) file. For example, a common CAD file format is the drawing interchange file (DXF) format. Such a file often contains specifications for individual parts that can be repeated using associated scales, rotations, and translations. To maximize material utilization, computer aided nesting (CAN) is often performed to automatically position the set of parts in a minimal amount of material. After the geometry of all the parts is specified, which is called a “job,” a computer aided manufacturing (CAM) program can be used to generate the actual g-code instructions to effect the execution of the job. CAM output is almost always specific for the laser cutter that performs the g-code instructions.
Collisions
The sheet material can be arranged horizontally on a support structure. The support structure usually has spaced-apart vertical bars or pins to allow features cut from the material to fall through and be removed from the work area. Large or irregularly shaped features may not fall through the support structure and can possibly collide with the cutter head. This is a problem. Such collisions are very costly due to the delicate nature of the cutter head and the time to repair, which makes it very important to avoid previously cut features so that the work process is not interrupted.
Head Up/Down
One solution avoids possible collisions with previously cut features by lifting the cutter head after each cut, traversing laterally to the next feature to be cut, and then returning the head to the down position. However, the head-up and head-down movements are notoriously slow compared to the lateral movements, adding significant time and complexity to the job, which increases cost and reduces efficiency. Hence, that method of collision avoidance is suboptimal.
U.S. Pat. No. 6,609,044 determines a bounding box around each feature to be cut, and ensures that the cutter head does not cross the bounding box. Although that method is effective in avoiding collisions without the use of slow head-up/down movements, the use of a bounding box is very inefficient for many common patterns.
U.S. Pat. No. 7,702,416 uses a drawing specification for motion control, of, e.g., a cutting machine. Elements in the drawing are ordered according to, e.g., a nesting or distance from the center of the drawing specification. Code is generated for implementing motion control based on the identified elements and the order. The generated code can include inserted operations such as raise, lower, and move operations.
Rendering
There are two basic rendering techniques, rasterization and ray casting. Both techniques typically use a frame buffer. A frame buffer is an array stored in a memory. Addresses of the array correspond to coordinates of pixel in the image to be produced. The pixels can be assigned values, such as intensities, colors, transparency, opacity, and the like. In conventional rendering the values relate to the visual appearance of what is being rendered.
Rasterization converts a 2D image space representation of features in a scene to a raster format, and the resulting pixel values are determined. When a graphics pipeline is used, a stream of polygon, e.g., triangles, with vertices, edges and faces are transformed to the pixels values in the array.
In ray casting, the scene is parsed pixel by pixel by casting rays out from a point of view. Where scene features are intersected, the pixel values are evaluated, e.g., the color value of the feature at the point of intersection becomes the value of that pixel in the array. Again, the pixels can be assigned appearance values, such as intensities, colors, transparency, opacity, and the like.